-
Tags:
Action d'arme -
Name:
aEmotionalStrike
-
Displayed name:
Frappe émotionnelle
-
Description:
Vous frappez avec votre arme en y mettant tout ce que vous éprouvez. L'attaque garde les PA, le dé et le type de dégâts de votre arme, mais pas son test : celui-ci porte sur la caractéristique de test de votre posture — **Vigueur** en Rage, **Réflexe** en Euphorie, **Résilience** en Sérénité, **Arcane** en Mélancolie. En plus des dégâts, la cible encaisse un malus dicté par votre posture : - **Rage** : sa régénération de PA baisse pendant 10 secondes. - **Euphorie** : elle perd du Flux, en dés de 10 multipliés par 10. - **Sérénité** : sa vitesse de déplacement baisse pendant 10 secondes. - **Mélancolie** : son temps de réaction augmente. L'ampleur du malus se choisit au lancement. Vous pouvez en outre dépenser des Points de l'émotion que vous tenez : chaque Point retire **1 de plus** à la caractéristique que votre posture affaiblit, pendant 10 secondes. *Il faut être en posture émotionnelle pour utiliser cette action.*
-
Cast description:
| PA: vAP.string | TdR: vCD.strings | | :---: | :---: | | **Flux: vFluxOrCost.string ➞ vFluxCost.string** | **Portée: vRange.string** | @if vPosture.value == 0 then [[***Vous devez être en posture émotionnelle pour utiliser cette action.***]] end @if vPosture.value > 0 then [[Sur un test de **vTest.string** réussi, **RM vMR.string** [1d20] : Inflige 1vDamageDice.string [1vDamageDice.string] dégâts vDamageType.string]] end @if vPosture.value > 0 then [[ à la cible, qui subit en plus la marque de votre **{({[[Rage]],[[Euphorie]],[[Sérénité]],[[Mélancolie]]})[vPosture.value]}** :]] end @if vPosture.value == 1 then [[ - **sa régénération de PA est réduite de {vMalus.value*0.1} PA/s** pendant 10 secondes.]] end @if vPosture.value == 2 then [[ - **elle perd vMalus.stringd10 [vMalus.stringd10] × 10 Flux**.]] end @if vPosture.value == 3 then [[ - **sa vitesse de déplacement est réduite de {vMalus.value*0.5} m/s** pendant 10 secondes.]] end @if vPosture.value == 4 then [[ - **son temps de réaction augmente de vMalus.string seconde(s)**.]] end @if vPoints.value > 0 then [[ - **sa {({[[Résilience]],[[Arcane]],[[Réflexe]],[[Vigueur]]})[vPosture.value]} est réduite de vPoints.string de plus** pendant 10 secondes, pour les Point(s) d'émotion dépensé(s).]] end @if vPosture.value > 0 then [[ *La créature affectée peut réagir avec son Esquive pour annuler les effets de cette action.*]] end
-
Condition:
assert(vPosture.value > 0, [[Vous n'êtes pas en posture émotionnelle.]]) assert(character.sFlux.current >= vFluxCost.value, [[Vous n'avez pas assez de Flux.]]) assert(vPosture.value ~= 1 or vPoints.value <= character.sRagePoints.current, [[Vous n'avez pas assez de Points de Rage.]]) assert(vPosture.value ~= 2 or vPoints.value <= character.sEuphoriaPoints.current, [[Vous n'avez pas assez de Points d'Euphorie.]]) assert(vPosture.value ~= 3 or vPoints.value <= character.sSerenityPoints.current, [[Vous n'avez pas assez de Points de Sérénité.]]) assert(vPosture.value ~= 4 or vPoints.value <= character.sMelancholyPoints.current, [[Vous n'avez pas assez de Points de Mélancolie.]]) -
AP cost:
vWeaponAP
-
Cooldown:
5
-
Flux cost:
apMod(vAP)*cdMod(vCD)*targetMod(1,0)*vRange*reacSave*cancelOnSave*(puncMod(0,1)*effect(vWeaponAP*22,60)+durMod(10)*effect(vPoints*45,22.5)+number(vPosture==1)*durMod(10)*effect(vMalus*75,37.5)+number(vPosture==2)*puncMod(0,1)*effect(vMalus*55,100)+number(vPosture==3)*durMod(10)*effect(vMalus*0.5*75,32.5)+number(vPosture==4)*puncMod(0,1)*effect(vMalus*37.5,50)) -
Variables:
postureLabels = {[[Rage]], [[Euphorie]], [[Sérénité]], [[Mélancolie]]} postureIndex = 0 if character:has([[mEmotionalPosture]]) then for i, label in pairs(postureLabels) do if string.find(character.mEmotionalPosture.displayName.value, label, 1, true) then postureIndex = i end end end vPosture = StatVariable([[vPosture]], postureIndex) testStats = {[[character.sVigor]], [[character.sReflex]], [[character.sResilience]], [[character.sArcana]]} testLabels = {[[Vigueur]], [[Réflexe]], [[Résilience]], [[Arcane]]} testIndex = postureIndex if testIndex == 0 then testIndex = 1 end vTest = ListVariable([[vTest]], [[Test]], {testStats[testIndex]}, {testLabels[testIndex]}) vMR = StatVariable([[vMR]], [[vTest]]) vMalus = NumberVariable([[vMalus]], [[Malus]], [[1]], [[10]], [[1]]) pointStats = {[[sRagePoints]], [[sEuphoriaPoints]], [[sSerenityPoints]], [[sMelancholyPoints]]} if postureIndex > 0 and character:has(pointStats[postureIndex]) then vPoints = NumberVariable([[vPoints]], [[Points d'émotion]], [[0]], [[character.]] .. pointStats[postureIndex], [[1]]) else vPoints = StatVariable([[vPoints]], 0) end -
On used script:
character.sFlux:changeCurrent(-vFluxCost.value) if (vPosture.value == 1) then character.sRagePoints:changeCurrent(-vPoints.value) elseif (vPosture.value == 2) then character.sEuphoriaPoints:changeCurrent(-vPoints.value) elseif (vPosture.value == 3) then character.sSerenityPoints:changeCurrent(-vPoints.value) elseif (vPosture.value == 4) then character.sMelancholyPoints:changeCurrent(-vPoints.value) end -
On post script:
if (success) then action.currentCD.value = vCD.value end -
Type:
1
-
Action effects:
-
Use case:
3*number(vPosture.value==1)
-
Name:
Frappe émotionnelle (Rage)
-
Description:
-
Script:
effect = character:createEffect([[mEmotionalStrikeRage]]) effect.displayName:set([[Frappe émotionnelle : Rage]]) effect.description:set([[Votre régénération de PA est réduite de {{vMalus.value*0.1}} PA/s.]]) effect.duration:set(10) effect.script:set([=[character.sRegenAP:addCurrent([[{{-vMalus.value*0.1}}]], [[psychic]], modifier.displayName.value)]=]) effect:activate() -
Variables:
-
Use case:
3*number(vPosture.value==3)
-
Name:
Frappe émotionnelle (Sérénité)
-
Description:
-
Script:
effect = character:createEffect([[mEmotionalStrikeSerenity]]) effect.displayName:set([[Frappe émotionnelle : Sérénité]]) effect.description:set([[Votre vitesse de déplacement est réduite de {{vMalus.value*0.5}} m/s.]]) effect.duration:set(10) effect.script:set([=[character.sMovement:addCurrent({{-vMalus.value*0.5}}, [[psychic]], modifier.displayName.value)]=]) effect:activate() -
Variables:
-
Use case:
3*number(vPosture.value==4)
-
Name:
Frappe émotionnelle (Mélancolie)
-
Description:
-
Script:
character:setReaction(character.currentReaction + {{vMalus.value}}) -
Variables:
-
Use case:
3*number(vPoints.value>0)
-
Name:
Frappe émotionnelle (Points d'émotion)
-
Description:
-
Script:
effect = character:createEffect([[mEmotionalStrikePoints]]) effect.displayName:set([[Frappe émotionnelle : Points d'émotion]]) effect.description:set([[Votre {{({[[Résilience]],[[Arcane]],[[Réflexe]],[[Vigueur]]})[vPosture.value]}} est réduite de {{vPoints.value}}.]]) effect.duration:set(10) effect.script:set([=[character.{{({[[sResilience]],[[sArcana]],[[sReflex]],[[sVigor]]})[vPosture.value]}}:addCurrent({{-vPoints.value}}, [[psychic]], modifier.displayName.value)]=]) effect:activate() -
Variables:
-